package com.ruoyi.project.system.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysServiceOrder;

/**
 * 用户服务订单Service接口
 * 
 * @author jjp
 * @date 2020-04-16
 */
public interface ISysServiceOrderService 
{
    /**
     * 查询用户服务订单
     * 
     * @param orderId 用户服务订单ID
     * @return 用户服务订单
     */
    public SysServiceOrder selectSysServiceOrderById(Long orderId);


    /**
     * 查询用户服务订单
     *
     * @param orderCode 订单号
     * @return 用户服务订单
     */
    public SysServiceOrder selectSysServiceOrderByCode(String  orderCode);


    /**
     * 查询用户服务订单列表
     * 
     * @param sysServiceOrder 用户服务订单
     * @return 用户服务订单集合
     */
    public List<SysServiceOrder> selectSysServiceOrderList(SysServiceOrder sysServiceOrder);


    public List<SysServiceOrder> sellectMyOrderList(SysServiceOrder sysServiceOrder);
    /**
     * 新增用户服务订单
     * 
     * @param sysServiceOrder 用户服务订单
     * @return 结果
     */
    public int insertSysServiceOrder(SysServiceOrder sysServiceOrder);

    /**
     * 生成订单
     * @param sysServiceOrder
     * @return
     */

    public AjaxResult createOrderService(SysServiceOrder sysServiceOrder);


    /**
     * 支付订单
     * @param sysServiceOrder
     * @return
     */
    public AjaxResult payOrderService(SysServiceOrder sysServiceOrder);


    public Boolean alipayBack(String orderCode,String payType,String totalMoney);

    /**
     * 修改用户服务订单
     * 
     * @param sysServiceOrder 用户服务订单
     * @return 结果
     */
    public int updateSysServiceOrder(SysServiceOrder sysServiceOrder);

    /**
     * 是否取消用户服务订单
     *
     * @param sysServiceOrder 用户服务订单
     * @return 结果
     */
    public AjaxResult audit(SysServiceOrder sysServiceOrder);

    /**
     * 用户确认完成服务
     * @param sysServiceOrder
     * @return
     */
    public AjaxResult confirmOrder(SysServiceOrder sysServiceOrder);


    public void confirmService();

    /**
     * 批量删除用户服务订单
     * 
     * @param orderIds 需要删除的用户服务订单ID
     * @return 结果
     */
    public int deleteSysServiceOrderByIds(Long[] orderIds);

    /**
     * 删除用户服务订单信息
     * 
     * @param orderId 用户服务订单ID
     * @return 结果
     */
    public int deleteSysServiceOrderById(Long orderId);
}
